H.264 is a standard for digital video. See ITU-T Rec. H.264, March 2005, hereinafter “the H.264 specification,” hereby incorporated by reference in its entirety. Designed for the delivery of high quality video at low bitrates, H.264 employs a number of advanced video encoding features, such as motion compensation, intra-frame directional spatial predictive coding, and entropy coding. Entropy coding is a technique for bitrate reduction that exploits the statistical redundancies expected to be present in the video to be encoded. The H.264 specification specifies two types of entropy coding: context adaptive variable length coding (CAVLC), and context adaptive binary arithmetic coding (CABAC). CAVLC is described in Section 9.2 of the H.264 specification.
One aspect of CAVLC calls for successively encoding the number of zeros separating each non-zero coefficient from the previous non-zero coefficient in a scan, i.e., the “run_before” values according to the H.264 specification. To recover the original scan, a typical CAVLC decoder may expend at least one computation cycle to decode each encoded run_before value. In some cases, such decoding may be inefficient, e.g., when the original scan includes a long string of consecutive non-zero coefficients, each having a corresponding run_before value of zero.
It would be desirable to provide techniques to more efficiently decode the run_before values in CAVLC encoded signals.